#include<iostream>
#include<cstring>
using namespace std;

bool v[10];

bool check(int x) {
    while(x > 0) {
        int t = x % 10;
        if(t == 0 || v[t]) return false;
        v[t] = true;
        x /= 10;
    }
    return true;
}

int main() {
    bool flag = false;
    int a, b, c;
    cin >> a >> b >> c;
    if(a == 0) {
        cout << "No!!!" << endl;
        return 0;
    }
    for(int i = 100; i <= 999; i++) {
        if(i * b % a != 0 || i * c % a != 0) continue;
        int x = i, y = i * b / a, z = i * c / a;
        if(y < 100 || y > 999 || z < 100 || z > 999) continue;
        memset(v, false, sizeof(v));  // 每次检查新的一组数之前重置 v 数组
        if(check(x) && check(y) && check(z)) {
            flag = true;
            cout << x << " " << y << " " << z << endl;
        }
    }
    if(!flag) cout << "No!!!" << endl;
    return 0;
}